package controle;

import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;

import DAO.IngressoDAO;
import DAO.LocalizacaoDAO;
import DAO.DAOFactory;
import modelo.Localizacao;
import modelo.Localizacao;
/**
 * 
 * @author douglas_joaquim
 *
 *Controle localiz@@o implementa localiza@@o
 */
public class ControleLocalizacao implements Controle<Localizacao> {
/**
 * Vai salvar localiza@@o ou alterar
 */
	@Override
	public void salvar(Localizacao e) throws Exception {
		
		if(e.getBairro().equals("")){
			throw new Exception("Bairro obrigatorio");
		}
		
		if(e.getCep().equals("")){
			throw new Exception("CEP obrigatorio");
		}
		if(e.getCidade().equals("")){
		
			throw new Exception("Cidade obrigatorio");
		}
		if(e.getEstado().equals("")){
			throw new Exception("Estado obrigatorio");
		}
		if(e.getNumero().equals("")){
			throw new Exception("Numero obrigatorio");
		}
		if(e.getRua().equals("")){
			throw new Exception("Rua obrigatorio");
		}
		
		if(e.getIdLocalizacao() != 0){
			LocalizacaoDAO localizacaoDAO = DAOFactory.getLocalizacaoDAO();
			localizacaoDAO.alterar(e);
		}else{
			 
			LocalizacaoDAO localizacaoDAO = DAOFactory.getLocalizacaoDAO();
			localizacaoDAO.salvar(e);
		}
	}

/**
 * Vai excluir localiza@@o
 */
	@Override
	public void excluir(Localizacao e) {
		LocalizacaoDAO localizacaoDAO = DAOFactory.getLocalizacaoDAO();
		
		localizacaoDAO.deletar(e);
		
	}
/**
 * Busca e cria uma lista de localiza@@o por Estado ou id
 */
	@Override
	public List<Localizacao> buscar(Localizacao e) throws Exception {
		List<Localizacao> localizacoes = new ArrayList<Localizacao>();
		LocalizacaoDAO localizacaoDAO = DAOFactory.getLocalizacaoDAO();
		if((!e.getEstado().equals("")) && (e.getIdLocalizacao()==0))
			localizacoes = localizacaoDAO.buscaLocalizacaoPorEstado(e);
		if((e.getEstado().equals("")) || (e.getIdLocalizacao()!=0))
			localizacoes = localizacaoDAO.buscaLocalizacaoPorId(e.getIdLocalizacao());
		if((e.getEstado().equals("")) && (e.getIdLocalizacao()==0))
			throw new Exception("Estado ou id sao necessarios");
		
			
			
		return localizacoes;
	}

/**
 * Busca e cria e retorna uma lista de todas localiza@@es
 */
	@Override
	public List<Localizacao> buscarTodos() {
		List<Localizacao> localizacaos = new ArrayList<Localizacao>();
		LocalizacaoDAO localizacaoDAO = DAOFactory.getLocalizacaoDAO();
		localizacaos = localizacaoDAO.findAll();
		return localizacaos;

	}
	

}
